package controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import pojo.Wz;
import service.WzService;

import java.util.List;

/**
 * 文章表控制器
 */
@RestController
@CrossOrigin(origins = "*")
@RequestMapping("/wz")
public class WzController {
    @Autowired
    private WzService wzService;

    // 根据ID查询文章
    @GetMapping("/{id}")
    public Wz getWzById(@PathVariable Integer id) {
        Wz wz = wzService.findWzById(id);
        if (wz != null) {
            wzService.incrementViewCount(id);
        }
        return wz;
    }

    // 查询所有文章
    @GetMapping("/all")
    public List<Wz> getAllWz() {
        return wzService.findAllWz();
    }

    // 按分类查询文章
    @GetMapping("/category/{category}")
    public List<Wz> getWzByCategory(@PathVariable String category) {
        return wzService.findWzByCategory(category);
    }

    // 查询热门文章
    @GetMapping("/hot/{limit}")
    public List<Wz> getHotWz(@PathVariable int limit) {
        return wzService.findHotWz(limit);
    }

    // 搜索文章
    @GetMapping("/search/{keyword}")
    public List<Wz> searchWz(@PathVariable String keyword) {
        return wzService.searchWz(keyword);
    }

    // 新增文章
    @PostMapping("/add")
    public int addWz(@RequestBody Wz wz) {
        return wzService.addWz(wz);
    }

    // 更新文章
    @PutMapping("/update")
    public int updateWz(@RequestBody Wz wz) {
        return wzService.updateWz(wz);
    }

    // 删除文章
    @DeleteMapping("/{id}")
    public int deleteWz(@PathVariable Integer id) {
        return wzService.deleteWz(id);
    }
}